class Solution {
public:
    string optimalDivision(vector<int>& nums) {
        // [a, b, c, d]
        // x / y
        // 保证x最大，y最小即可
        // x可以取a，a / b，a / b / c
        // 显然取a的时候最大
        // y可以取b / c / d，b / (c / d)
        // 显然取b / c / d时最小
        int n = nums.size();
        if(n == 1)
            return to_string(nums[0]);
        if(n == 2)
            return to_string(nums[0]) + "/" + to_string(nums[1]);
        
        string ret = to_string(nums[0]) + "/(";
        for(int i = 1; i < n; i++)
            ret += to_string(nums[i]) + "/";
        ret.pop_back();
        return ret + ")";
    }
};